Data transmission

ABSTRACT

In order to measure the rate at which a terminal  2  can receive data from a source  5, 6, 7  the source temporarily increases it transmitting rate. The time taken to receive these higher-rate transmissions is measured at the terminal (or acknowledged by the terminal and measured at the transmitter) and the rate calculated. Inter alia, these measurements can be used for control of layered coding where apparatus for transmitting signals to video or other terminals  2  has coding means  5  for receiving the signals to generate a base signal stream B which is a coarse representation of the signal to be transmitted and at least one higher order stream E 1 , E 2  containing finer detail of the signal not present in any lower order stream. These streams are sent by transmitting means  6  to the terminals, but at least some of the terminals do not receive all of the higher order streams. Control means  7  receives signals X k  indicative of the measured data-receiving capacity of the terminals and calculates, based on the measured capacities, an adjustment for the coding means to make to the data rates of the streams.

The present invention is concerned with data transmission, and moreparticularly to the measurement of capacity. Although of generalapplication, a context of particular interest is multicast distribution,that is, where that a given signal feed (or recording) is to bedistributed to a number of user terminals or receivers simultaneously.Commonly such material is distributed over digital telecommunicationsnetworks, for example, the internet or other internet protocol-basednetwork.

The usual arrangement is that a source computer (the server) transmitsthe signals with a multicast address as the destination. A terminal (orclient) that is to receive the signals corresponding to that multicastis said to join the corresponding multicast group: that is, the client'saddress is added to a list of group members, and routers within thenetwork direct all packets which are addressed to that multicast addressto all the member clients. In such circumstances the bit rate that cansatisfactorily be received will vary from user to user, according, forexample to the type of connection he has, and moreover is likely to varywith time, depending on the prevailing level of network congestion.

One method of accommodating this is by the use of layered coding (alsocalled scalable coding). Here the idea is that one generates twobit-streams, one—the base layer—carrying a low-quality signal, and asecond—the enhancement layer—carrying at least part of the informationthat is missing from the base layer, so that a receiver that receivesboth layers can reconstruct a high-quality signal by combining theinformation received in both layers. More than two layers can be used,in which case each successive enhancement layer carries information thatis denied to those receiving only the lower layer(s). A receiver canthen be sent only as many layers as the currently available link betweenthe transmitter and the receiver can comfortably handle. In the event ofnetwork congestion, the number of layers sent to the particular receivercan be reduced by ceasing transmission of the highest layer of thosethat were previously being sent. Layered coding is often used for thetransmission of video signals, for audio signals, or both. In principlehowever it can be applied to any type of material for which a signal ofreduced bit-rate (and, hence, in some sense, reduced resolution) isworthwhile receiving.

For discussion of layered video coding, see M. Ghanbari, Video Coding—anintroduction to standard codecs, IEE, 1999, pp. 131-150.

For discussion of layered multicast, see S. McCanne, ‘Receiver drivenlayered multicast’, Proceedings of SIGCOMM 96, Stanford. Calif. August1996, and M. Nilsson, D. Dalby and J. O'Donnell, ‘Layered AudiovisualCoding for Multicast Distribution on IP networks’, Packet Video Workshop2000, Cagliari, Italy.

A typical method of multicasting audiovisual material is that theaudiovisual source multicasts layered audio and video over the IPnetwork (internet). Each layer of audio and each layer of video is sentto a separate multicast address. Each client makes its own decision ofhow many layers to receive, and joins the appropriate multicast groups.The content would have previously been advertised, using for example,SDP (session description protocol), which would include the bit ratesand the addresses of the different layers.

One difficulty with layered multicasting is that it is non-optimum for aclient terminal which has a data-receiving capacity which falls justshort of that needed to support a particular layer, as it must then dropdown to the layer below effectively “wasting” some of the capacity.However Vickers et al (“Adaptive Multicast of Multi-Layered Video:Rate-Based and Credit-Based Approaches”, IEEE 1998) have proposed usingnetwork feedback to dynamically adjust both the number of video layersit generates and the rate at which each layer is generated). The amountof bandwidth available is measured by a feedback packet whichtransverses the network and each network node marks the packet toindicate the amount of bandwidth available. A similar method, based onquality of voice measurements, is described by Zhao et al “DynamicQuality of Session Control of Real-time Video Multicast” (1997 IEEEInternational Conference on Intelligent Processing Systems).

The Vickers et al method has the disadvantage that the network nodeshave to be modified to provide the feedback. An alternative feedbackmethod is discussed by

Nilsson et al in the above-referenced paper, where the client determinedwhat network capacity was available between it and the server byperforming so-called join experiments, where the client randomly decidesto join a higher layer, and then watches to see if the result issuccessful reception of the higher rate or packet loss across alllayers. While this is reasonably satisfactory for a single client—somepacket loss occurring when unsuccessful join experiments areconducted—it gets worse as more clients are involved, and make their ownjoin experiments—as clients unaware of the join experiment may beaffected by the packet loss resulting from an unsuccessful joinexperiment, and may incorrectly conclude that their network capacityfrom the server has reduced and so must reduce the number of layersreceived.

According to one aspect of the present invention there is provided amethod of operating a telecommunications system in which a servertransmits data to a terminal, wherein the method includes measuring thereception capacity of the terminal by:

-   -   (a) temporarily increasing the data rate of the data transmitted        by the terminal, and    -   (b) measuring the time taken to receive the data transmitted at        the increased rate.

Other aspects of the invention are set out in the claims.

Some embodiments of the invention will now be described, by way ofexample, with reference to the accompanying drawings, in which:

FIG. 1 is a block diagram of a multicast video distribution system; and

FIG. 2 is a block diagram of a layered video transcoder suitable for useion the system of FIG. 1.

The system now to be described is for multicast distribution of layeredvideo, but, as discussed above, can equally lend itself to thedistribution of audio signals or other signals for which layered codingis practicable. It receives a video feed at an input 1, in compresseddigital form—for example according to the MPEG-2 standard. The pictureswhich it represents are to be distributed to a number of user terminals2. Each terminal is connected via some connection (perhaps via atelephone network or ADSL link) to one of a number of service providerpoints 3 which provide access to a telecommunications network (such asthe internet) indicated at 4. Video signals arriving at the input 1 arecoded by a layered video transcoder 5 which has a base layer output B,and first and second enhancement layer outputs E1, E2. These outputs aresupplied to a network interface 6 connected to the network 4.

In a conventional arrangement of this kind, the layers each operate at afixed bit-rate. Each client terminal determines how many layers it mayreceive and joins the corresponding multicast groups accordingly. Forexample if each layer operates at 64 kbit/s and the bit rate availablefor the particular terminal is 160 kbit/s, then the maximum number oflayers is two, and the client terminal joins the lower two multicastgroups only, so that the terminal is sent only the base layer B and thefirst enhancement layer E1. If the network conditions change, thisdecision may be modified so that the terminal switches to receiving onlythe base layer, or to receiving all three layers.

It will be observed that such a system does not make for the bestpicture quality available: it the case of the numerical example quotedabove, the terminal, although capable of receiving at 160 kbit/s, infact is receiving at only 128 kbit/s. There is also the drawback thatany terminal whose currently available bit-rate falls below the rateneeded for the base layer will suffer complete loss of signal untilconditions improve once again.

In the system now proposed, the transcoder 5 has control inputs ca, C1,C2 by means of which the bit rate produced by the transcoder in eachlayer may be adjusted. A control unit 7 serves to receive, from theinterface 6, signals x_(k) indicating the current bit-rate capacityavailable for each of the terminals currently connected, andperiodically makes a decision as to any changes to the bit rates to beemployed by each layer and sends control signals to the transcodercontrol inputs to adjust, if necessary, the bit rate in one or morelayers.

The details of implementation of this process are

-   -   (i) to ascertain the rate x_(k) at which each terminal k (k=1 .        . . K) is able to receive data over the network;    -   (ii) the algorithm to be used by the control unit 7 to determine        the layer rates;    -   (iii) control of the transcoder to operate at the new rates; and    -   (iv) the process whereby the client terminals, following an        adjustment to the layer rates, may change their decisions as to        which layers to receive.

Considering first the available capacity, a first example of this may beimplemented as follows.

The following example illustrates the principle of operation. Assumethat the server is sending a single stream at 10 packets per second.Normally it would try to space these evenly every 100 ms. But if insteadit sent 50 packets immediately, and then did nothing for the remainderof a 5 second period, before repeating the process for the next 50packets etc, then (assuming the client is capable of receiving at thisaverage rate of 10 packets per second) the time taken to receive thisburst of 50 packets would give an indication of the throughput. So ifthey arrived in 2 seconds, it could conclude that it had the networkcapacity to receive an average of 25 (same sized) packets per second.

The impact on core network resources could be minimised by sending thehigher layers in the gaps between bursts of packets in the lower layers,so that its overall output was a fairly constant packet rate. Note thatfor this technique to work, the server does not need to send packetsback to back, but simply closer together in time than the client iscapable of receiving.

Thus, the principle is

-   -   (a) the server transmits packets at an average rate of p packets        per second.    -   (b) normally these packets are transmitted fairly regularly.    -   (c) periodically, (perhaps every 60 seconds) the server        transmits in burst mode for a period of time T (e.g. 5 seconds),        comprising T_(B) (e.g. 1) seconds during which it transmits        packets at a rate of pT/T_(B) per second followed by T-T_(B)        seconds during which it transmits no packets. The burst packets        are labelled with a marker to indicate that they belong to such        a burst.    -   (d) the client terminal (which is programmed with, or informed        of, the parameters p, T, T_(B)) upon recognition of a burst        packet marker, starts a timer which is stopped when all pT        packets with this marker have been received.    -   (e) if the timer count is T_(R) seconds, the client calculates        the value x_(k)=(pT−1)/T_(R) (to allow for fact that pT−1 packet        intervals are timed, but pT packets are received).    -   (f) the client transmits this value x_(k) to the server.

FIG. 1 illustrates this process in that the values x_(k) are shown asbeing received from the terminals via the network and the interface 6.

Alternatively, assuming a protocol involving the acknowledgment ofreceived packet is in use, the measurement process could be performed atthe server, which would measure the time duration between the first andlast receipt by the server of acknowledgements of the packets of aparticular burst.

It should be noted that this method of capacity measurement has usesbeyond the present context of rate control of multicast streams, and maybe used in other situations in which the data receiving capacity of aterminal needs to be measured.

In a simplified system, the available capacity could be input manuallyby a user to the terminals, based on the user's knowledge that theterminal is connected via a particular type of link—e.g. a PSTNconnection at 56 kbit/s or an ADSL connection at 1.5 Mbit/s. This isnon-optimum, as it takes no account of variations in network congestion,but it would nevertheless represent a usable system.

Turning now to the control algorithm, the function of the control unitis

-   -   to receive from each terminal a message stating the bit-rate        currently available to it;    -   to determine any necessary adjustments to the bit-rates of the        layers.

In the following description, references to the bit-rate of a layer meanthe bit-rate of that layer alone, whilst the total bit rate of a layeris used to mean the bit-rate needed by a terminal using it, that is tosay, the sum of the bit rates of that layer and all lower layers.Terminals receiving the base layer only are referred to as Group 0terminals, terminals currently receiving only the base layer and layerE1 are referred to as Group 1 terminals, whilst terminals receiving allthree layers are referred to as Group 2. References in the followingdescription to a terminal receiving a particular layer imply, of course,that that terminal is also receiving all of the lower layers too.

The algorithm to be employed by the control unit is not simple todevise. For example, if a Group 1 terminal reports a capability of 150kbit/s and the current total bit rate of layer E1 is 128 kbit/s (say 64kbit/s for the base layer and 64 kbit/s for layer E1), then manifestlythe correct response may well not be simply to increase the totalbit-rate of layer E1 to 150 kbit/s, since this may not be within thecapabilities of other Group 1 terminals, which would then be forced todrop back to the base layer. Also there is an interdependence of thelayers in the sense that a more appropriate response to a Group 1terminal reporting surplus capacity may under some circumstances be tolower the total bit-rate of layer E2 so that that terminal may thenswitch to Group 2. Also it makes no sense to adjust the bit rate suchthat one layer ends up having a zero or trivially small bit rate.

Two possible algorithms will now be described. In each case, thereported bit rate capability of terminal k of a total of K terminals isdenoted by x_(k).

-   -   a) Given the distribution of bit rate capabilities x_(k),        -   the lowest layer bit rate a₀ is chosen to be the lower of a            fixed minimum value a_(0min) and a value x_(PO) that exceeds            the x_(k) of no more than a fixed percentage P₀ (perhaps            0.1%) of the terminals, but may be increased to the lowest            value of x_(k) if this is greater, i.e.            a ₀=Max{Min{x _(k)},Min{a _(0min) , x _(PO)}}        -   the other bit rates are chosen such that, of those terminals            having x_(k) greater than or equal to x₀, two thirds of them            have values of x_(k) greater than or equal to (a₀+a₁) and            one third have values of x_(k) greater than of equal to            (a₀+a₁+a₂).    -   b) Another approach is derived from the idea that users are        charged for the number of bytes or packets received, and that        the server wants to maximise revenue.

In simple terms, the rates a₀, a₁, and a₂ . . . are chosen so that thesum, over all connected clients, of individual unused bit rate isminimised. For a given terminal k, with capacity x_(k), between a₀ anda₀+a₁, (i.e. a₀<x_(k)<a₀+a₁) the unused bit rate would be x_(k)−a₀.${{Let}\quad n_{5}} = {\sum\limits_{i = 0}^{s - 1}{a_{i}\quad\left( {{i.e.\quad n_{s}}\quad{is}\quad{the}\quad{total}\quad{rate}\quad{of}\quad s\quad{layers}} \right)}}$(i.e. n_(s) is the total rate of s layers)

Suppose that terminal k operates at a bit rate r_(k) which is thelargest n_(s)≦x_(k)

Choose a_(i) (i=0 . . . l) such as to minimise the unused capacity$u = {{\sum\limits_{k = 1}^{K}\left( {x_{k} - {r\quad}_{k}} \right)} = {{\sum\limits_{k = 1}^{K}x_{k}} - {\sum\limits_{k = 1}^{K}r_{k}}}}$

Since, however, the x_(k) are given, the task is to maximise the term$v = {\sum\limits_{k = 1}^{K}r_{k}}$

Given that r_(k) is not a continuous function of a_(i), an elegantsolution of this maximisation problem seems improbable and thus wepropose that the control unit is programmed to solve the problem byevaluating v for all possible values of a_(i) within defined ranges,subject to some quantisation on the choices for a_(i)—perhaps multiplesof 1 kbit/s.

Having determined the bit rate for each layer, the control unitcommunicates the new rates to the transcoder Turning now to thetranscoder, a block diagram of a layered transcoder with adjustablerates is shown in FIG. 2. This is a layered, SNR-scalable transcoderoperating in accordance with the MPEG-2 standard. An incoming MPEG-2signal at an input 10 firstly passes through a decoder 11 forvariable-length codes, followed by an inverse quantiser 12 matched tothe quantiser of the original encoder. The coefficients output from theinverse quantiser 12, after addition at 101 of a correction signal (tobe described below) are requantised in a coarse quantiser 102 andvariable-length coded at 103 to provide a base-layer signal which isthen input to a buffer 104.

A subtractor 105 forms the difference between the coefficients at theoutput of the inverse quantiser 12, and those obtained via an inversequantiser 106 from the base layer signal at the output of the quantiser102. This difference signal, which represents the information nowlacking from the first layer, forms the input to the next layer.

Drift correction (if required) is provided as follows. The differencesignal from the subtractor 105 is converted from the frequency domain tothe pixel domain by an inverse discrete cosine transform (DCT) unit 107and then accumulated in a loop comprising an adder 108, a frame store109 and a motion compensation unit 110 which receives motion vectorsextracted (by means not shown) from the incoming signal. Note that theframe store 109 is shown as multiple stores, which are needed in systemssuch as MPEG which use an irregular inter-frame prediction sequence. Thearrangements for switching between the stores are as in a conventionalMPEG coder.

This accumulated drift is then converted to the frequency domain by aDCT unit 111 and added as a correction to the next frame via the adder101.

A control unit 112 serves to sense the state of fullness of the bufferand to influence the rate of generation of data in such a manner as toensure that the buffer neither overflows or becomes empty; this it doesby controlling the step-size of the quantiser 102, or by causingframe-dropping by a switch 113, or both. Commonly in systems of thistype, data would be read out of the buffer at a constant bit-rate. Here,however the buffer receives at a control input 114 the aforementionedcontrol signal C_(B) which serves to set the rate of a readout clock tothe rate a₀ indicated by C_(B).

In principle, the control unit 112 could use a conventional buffercontrol algorithm—that is, the rate control signal C_(B) simply changesthe readout rate and the control unit tracks this by monitoring thestate of buffer fullness. In practice, however, it may be preferred touse the control signal C_(B) to influence the transcoder more directly,for example simple rate control strategy is to set a picture droppingthreshold proportional to the bit rate (such as 4 picture periods×bitrate), and to select the quantiser to be proportional to the bufferfill, so that the finest quantiser is used when the buffer is empty andthe coarsest one is used when the level is the picture droppingthreshold.

The first enhancement layer is constructed in identical manner to thebase layer, and receives the output from the subtractor 105 at adder201— components 201 to 214 are identical to components 101 to 114 of thebase layer. The control input 214 receives the first enhancement layercontrol signal C₁. Similarly, the second enhancement layer hascomponents 301 to 313 and control input 314 receiving the control signalC₂. Naturally, further layers could be added, on the same pattern, ifdesired.

In order to create the bursty transmission to allow the client tomeasure the network capacity, the readout rate on each layer needperiodically to be temporarily increased. For this purpose, controlsignals B_(B), B₁ and B₂ each consisting of a differently-phased1-second pulse every 60 seconds are generated by the control unit 7 andsupplied to the respective buffers 104, 204, 304 to increase the readoutrate. Note that if this approach is adopted, to avoid the buffer controlbeing affected it is necessary for the control units 112, 212, 312 tocalculate the fullness that the relevant buffer would have had withuniform emptying. Alternatively, a second buffer could be added to eachlayer, with uniform packet transfer (at rate a_(i)) from the first, andbursty transmission from the second into the network.

Finally, there remains the question of how the clients make ifnecessary, a revised decision as to which layers they subscribe to. Onepossibility would be for them to follow the existing practice of “joinexperiments” as described in the introduction. A more attractive option,in the present context, is to make use of the fact that the data ratex_(k) available to the client has already been determined. Thus theserver notifies the clients of the new bit rates of each layer (via anSDP advertisement as mentioned earlier). The client then determines howmany layers it can receive within the limit corresponding to x_(k) forthat terminal, and if necessary joins or leaves multicast groups so thatit is sent those layers and no others.

Note: if the available data rates x_(k) were to be measured by theserver, then the server would need to communicate this information tothe respective terminals. Alternatively, the server could perform thesame calculation and instruct the client which groups to subscribe to.

Other forms of layered transcoder can also be used, including those withspatial scaling. Indeed, the control mechanisms envisaged here could(with uncompressed video input) be used in a system using layeredencoders (as opposed to transcoders), or indeed to encoders andtranscoders that produce hierarchies of independent streams, rather thanadopting a layered approach.

1. A method of operating a telecommunications system in which a servertransmits data to a terminal, the method including measuring thereception capacity of the terminal by a) temporarily increasing the datarate of the data transmitted by the server to the terminal, and b)measuring the time taken to receive the data transmitted at theincreased rate.
 2. A method according to claim 1 in which the step ofmeasuring the time taken is performed by the terminal.
 3. A methodaccording to claim 1 in which the data are transmitted in packets, theterminal sends acknowledgements of receipt of the packets to the server,and the step of measuring the time taken is performed by the servermeasuring the time taken to receive the acknowledgements of the packetstransmitted at the increased rate.
 4. A method of transmitting signalsto a plurality of terminals comprising: a) coding the signals togenerate a base signal stream which is a coarse representation of thesignal to be transmitted and at least one higher order stream, where theor each higher order stream contains finer detail of the signal notpresent in any lower order stream; b) transmitting the streams to theterminals, where at least some of the terminals do not receive all ofthe higher order streams; c) measuring the data-receiving capacity ofthe terminals using the method of claim 1 or 2; d) calculating, based onthe measured capacities, an adjustment to be made to the data rates ofthe streams.
 5. A method according to claim 4 in which the or eachhigher order stream lacks information contained in a lower order stream,in which each terminal receiving a higher order Stream receives also alllower order streams.
 6. A method according to claim 4 in which thestreams are generated by a transcoder.
 7. A method according to claim 1in which the calculation of data rates to be used for transmission isperformed by selecting rates such that the numbers of terminals capableof receiving each level of quality shall be in predeterminedproportions.
 8. A method according to claim 1 in which the calculationof data rates to be used for transmission is performed by calculatingthe difference between the total data-receiving capacity of theterminals and the total of the capacity required for each terminal toreceive the highest quality signal requiring a bit rate less than orequal to its capacity, and calculating an adjustment to be made to thedata rates of the streams such as to tend to reduce that difference. 9.A transmission system comprising a server for transmitting data and aterminal for receiving data, wherein the server includes means operableto temporarily increase the data rate of a transmitted stream, and thesystem includes means operable to measure the time taken to receive thedata transmitted at the increased rate.
 10. A method according to claim9 in which the server is arranged to transmit data in packets, and isoperable to measure the time taken to receive acknowledgements of thepackets transmitted at the increased rate.
 11. An apparatus fortransmitting signals to a plurality of terminals comprising: a) codingmeans for receiving the signals to generate a base signal stream whichis a coarse representation of the signal to be transmitted and at leastone higher order stream, where the or each higher order stream containsfiner detail of the signal not present in any lower order stream; b)means for transmitting the streams to the terminals, whereby at leastsome of the terminals do not receive all of the higher order streams; c)control means operable to temporarily increase the data rate of atransmitted stream to receive signals indicative of the data-receivingcapacity of the terminals and to calculate, based on the measuredcapacities, an adjustment to be made to the data rates of the streams;the coding means being responsive to control signals from the controlmeans to adjust the rates of the streams.
 12. An apparatus according toclaim 11 in which the transmitting means is operable to transmit data inpackets, and the control means is operable to determine thedata-receiving capacity of the terminals by measuring the time taken toreceive acknowledgements of the packets transmitted at the increasedrate.
 13. An apparatus according to claim 10 in which the or each higherorder stream lacks information contained in a lower order stream, inwhich each terminal receiving a higher order stream receives also alllower order streams.
 14. An apparatus according to claim 11, in whichthe coding means is a transcoder.
 15. An apparatus according to claim 11in which the control means is arranged in operation to calculate datarates to be used for transmission by selecting rates such that thenumbers of terminals capable of receiving each level of quality shall bein predetermined proportions.
 16. An apparatus according to claim 11 inwhich the control means is arranged in operation to calculate data ratesto be used for transmission by calculating the difference between thetotal data-receiving capacity of the terminals and the total of thecapacity required for each terminal to receive the highest qualitysignal requiring a bit rate less than or equal to its capacity, andcalculating an adjustment to be made to the data rates of the streamssuch as to tend to reduce that difference.